<?php


require_once 'SF/SFanimal.php';
require_once "classes/animal.php";
require_once 'config.php';
/**
 * Classe permettant de gérer les metier du service Applicatif Personne 
 */
class SAanimal{
    

    /**
     * Service Applicatif pour l'ajout d'un animal
     * @param Animal Un objet Animal à ajouter
     * @param Race Un objet Race pour définir la race de n'animal
     * @return Animal L'objet animal mémorisé 
     */
    public function ajouter(Animal $unAnimalAAjouter, $uneListeDeRace) {
        $unAnimalMemorisee=null;
        $unAnimal = new SFanimal();    
        $unAnimalMemorisee=$unAnimal->ajouter($unAnimalAAjouter, $uneListeDeRace);

        return $unAnimalMemorisee;
    }

    /**
     * Modifie un animal
     * @param Animal Un animal à modifier
     * @return Animal Un animal modifié 
     */
    public function modifier($unAnimalAModifier, $uneListeDeRace) {
        $unAnimalModifie = null;
        $SFanimal        = new SFanimal();    
        $unAnimalModifie = $SFanimal->modifier($unAnimalAModifier, $uneListeDeRace);

        return $unAnimalModifie;
    }
    /**
     * Methode pour lister les animaux selon les critères séléctionnée
     * @param Animal Un objet animal contenant les critères de séléction
     * @return Animal[] Une liste d'animaux correspondant aux critères de recherche 
     */
    public function lister($animalARechercher) {
        $SFanimal = new SFanimal();
        return $listeAnimaux = $SFanimal->lister($animalARechercher);
    }
    
    /**
     * Service applicatif pour la recherche d'animaux avec leurs races
     * @param Animal Objet animal à rechercher
     * @param Race Objet race à rechercher
     * @return Animal[] Une liste d'animaux correspondant aux critères de recherche 
     */
    public function listerAvecRace($animalARechercher, $race) {
        $SFanimal = new SFanimal();
        return $listeAnimaux = $SFanimal->listerAvecRace($animalARechercher, $race);
    }
    
    /**
     * Service applicatif permettant de lister les races d'un animal
     * @param Animal Animal dont on cherche les races
     * @return RaceToAnimal[] liste des races d'un animal 
     */
    public function listerRaces(Animal $animalARechercher){
        $SFanimal = new SFanimal();
        
        return $SFanimal->listerRace($animalARechercher);
    }
    

    /**
     * TODO: Supprime un animal
     * @param int identifiant de l'animal à supprimer
     * @return Boolean True si l'animal a été supprimé, False sinon
     */
    public function supprimer($idAnimalAsupprimer) {
        return false;
    }

}
?>
